home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / rpg / crossfir.92 / crossfir / crossfire-0.92.5 / server / egoitem.c < prev    next >
C/C++ Source or Header  |  1996-07-24  |  1KB  |  46 lines

  1. /*
  2.  * static char *rcsid_egoitem_c =
  3.  *   "$Id: egoitem.c,v 1.3 1994/05/06 08:03:52 master Exp $";
  4.  */
  5.  
  6.  
  7. #include <global.h>
  8. #ifndef __CEXTRACT__
  9. #include <sproto.h>
  10. #endif
  11.  
  12.  
  13.  
  14. /*  peterm:  do_power_crystal
  15.  
  16.   object *op, object *crystal
  17.  
  18.   This function handles the application of power crystals.
  19.   Power crystals, when applied, either suck power from the applier,
  20.   if he's at full spellpoints, or gives him power, if it's got 
  21.   spellpoins stored.  
  22.  
  23. */
  24.  
  25. int apply_power_crystal(object *op, object *crystal) {
  26.   int available_power;
  27.   int power_space;
  28.   int power_grab;
  29.  
  30.   available_power =  op->stats.sp - op->stats.maxsp;
  31.   power_space = crystal->stats.maxsp - crystal->stats.sp;
  32.   power_grab = 0;
  33.   if(available_power>=0 && power_space> 0 )  
  34.         power_grab = MIN ( power_space, 0.5 * op->stats.sp );
  35.   if(available_power < 0 && crystal->stats.sp >0 ) 
  36.         power_grab = - MIN( -available_power, crystal->stats.sp);
  37.  
  38.   op->stats.sp-=power_grab;
  39.   crystal->stats.sp +=power_grab;
  40.   crystal->speed = (float)crystal->stats.sp/(float)crystal->stats.maxsp;
  41.   update_ob_speed(crystal);
  42.  
  43.   return 1;
  44. }
  45.  
  46.